const db = wx.cloud.database()

Page({

    /**
     * 页面的初始数据
     */
    data: {
        //单个json类型的变量
        student: {
            name: '赵云',
            number: '3434345',
            className: '大数据3班'
        },
        //数组类型的变量
        list: [

        ],
        weidakaList: [{
                name: '张三',
                number: '3303'
            },
            {
                name: '张三2',
                number: '4444'
            },
            {
                name: '张三3',
                number: '3355503'
            },
        ]
    },
    //实现图片预览（最大显示）
    previewImg: function (e) {
        console.log(e)
        var current = e.currentTarget.dataset.src;
        //将指定的图片预览显示
        let img = []
        img.push(current)
        wx.previewImage({
            urls: img,
            current: current,
            success: function (e) {
                console.log("预览成功....")
            }
        })
    },

    //打开详情页面
    gotoShow: function (options) {
        console.log(options)
        let item = options.currentTarget.dataset.item
        //跳转过去的时候，需要把当前这个打开记录的数据传过去
        wx.navigateTo({
            // Json对象转为Json字符串，然后传过去JSON.stringify
            url: '/pages/signShow/signShow?item=' + JSON.stringify(item),
        })
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        //显示打卡学生列表
        this.getList()
        // weidakaList 查询出哪些学生未打卡
        // 查出所有已签到学生列表  ----   学生表数据


        //调用云函数
        // wx.cloud.callFunction({
        //     name:'threeNumAdd',
        //     data:{
        //         a:20,
        //         b:200,
        //         c:2000
        //     },
        //     success:res=>{
        //         console.log(res)
        //     },
        //     fail:res=>{
        //         console.log(res)
        //     }
        // })
        // return

        // 直接数据库查询语句，默认只能最多一次20条，换一个方案，写云函数
        wx.cloud.callFunction({
            name: 'getAllData',
            data: {
                className: wx.getStorageSync('selectClassName'),
                tableName: 'student',
            },
            success: res => {
                // console.log(res)
                //指定班级的所有学生
                let allStudent = res.result.data
                console.log('指定班级的所有学生', allStudent)

                //调用云函数，获取到所有 考勤学生数据记录
                wx.cloud.callFunction({
                    name: 'getAllData',
                    data: {
                        tableName: 'signRecord',
                    },
                    success: res => {
                        console.log('考勤的所有学生', res)
                        // 考勤的所有学生
                        let kaoqingStudent = res.result.data
                        let queXiStudent = []
                        //   allStudent  - kaoqingStudent
                        allStudent.forEach(item => {
                            // 遍历所有学生，在考勤记录汇中查，如果没有，就加入缺席数组
                            // console.log(item)
                            let flag = false
                            kaoqingStudent.forEach(item2 => {
                                if (item.name == item2.name && item.number == item2.number) {
                                    flag = true
                                }
                            })
                            if (flag == false) {
                                queXiStudent.push(item)
                            }
                        })
                        console.log('缺席的数组', queXiStudent)
                        //更新下页面上的缺席名单显示
                        this.setData({
                            weidakaList: queXiStudent
                        })

                    },
                    fail: res => {
                        console.log(res)
                    }
                })
            },
            fail: res => {
                console.log(res)
            }
        })
        //  查出1班所有学生 -  本次打卡所有学生 =  缺勤所有学生
        // 下面这种方式，直接js查数据库表，一次最多20条限制
        // 当前的需求，一定要一次拿出该表符合条件的所有数据  --》使用云函数来实现


        // db.collection('student').where({
        //     className:'19大数据1班'
        // }).get({
        //     success:res=>{
        //         console.log('19大数据1班所有人',res)
        //     },
        //     fail:res=>{
        //         console.log(res)
        //     }
        // })

        //调用云函数，查询所有学生数据
        // wx.cloud.callFunction({
        //     name:'',
        //     data:{
        //         tableName:''
        //     },
        //     success:res=>{
        //         console.log(res)
        //     },
        //     fail:res=>{
        //         console.log(res)
        //     }
        // })



    },
    //自定义方法
    getList: function (options) {
        console.log("加载数据...")
        //读取云数据库中数据，并加载到当前页面上指定变量students
        // 云开发 访问数据的api
        // 查询student表的数据
        db.collection('signRecord').skip(this.data.list.length).get({
            success: res => {
                //回调函数，查询正常，执行，res表示返回的数据对象
                console.log('查询成功', res)
                // 返回的数据，设置到页面的指定的变量中students
                if (res.data.length > 0) {
                    this.setData({
                        list: this.data.list.concat(res.data)
                    })
                }

            },
            fail: res => {
                //回调函数，查询异常，执行，
                console.log('查询失败', res)
            }
        })

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {
        this.getList()
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})